home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Hardware / Mac OS USB DDK / Mac OS USB DDK 1.4.1 / USB Software Locator Kit / SampleDriverInstallerExample / SampleDriver.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-25  |  2.1 KB  |  87 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        SampleDriver.h
  3.  
  4.     Contains:    Header file for Sample module
  5.  
  6.     Version:    xxx put version here xxx
  7.  
  8.     Copyright:    © 1997-1998 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Writers:
  11.  
  12.         (CJK)    Craig Keithley
  13.  
  14.     Change History (most recent first):  
  15.  
  16. */
  17. #ifndef __SampleDriverH__
  18. #define __SampleDriverH__
  19.  
  20. #include <Types.h>
  21. #include <Devices.h>
  22. #include <DriverServices.h>
  23. #include <Processes.h>
  24. #include <CursorDevices.h>
  25. #include <USB.h>
  26. #include "hex2c.h"
  27.  
  28. #define    kDriverName    "\pSampleDriver"
  29.  
  30. OSStatus     SampleDriverValidateHW(USBDeviceRef device, USBDeviceDescriptor *desc);
  31. OSStatus    SampleDeviceInitialize(USBDeviceRef device, USBDeviceDescriptorPtr pDesc, UInt32 busPowerAvailable);
  32. OSStatus    SampleInterfaceInitialize(UInt32 interfacenum, USBInterfaceDescriptorPtr pInterface, USBDeviceDescriptorPtr pDesc, USBDeviceRef device);
  33. OSStatus    SampleDriverFinalize(USBDeviceRef theDeviceRef, USBDeviceDescriptorPtr pDesc);
  34. OSStatus    SampleDriverNotifyProc(UInt32 notification, void *pointer, UInt32 refcon);
  35.  
  36. OSStatus    SampleWrite(USBPB *pb, UInt32 sampleAddress, UInt32 count, UInt8 writeBuffer[]);
  37.  
  38. Boolean        immediateError(OSStatus err);
  39.  
  40. void         InitiateTransactionProc(USBPB *pb);
  41. void         TransactionCompletionProc(USBPB *pb);
  42.  
  43. void         DeviceInitialize(USBDeviceRef device, USBDeviceDescriptorPtr pDeviceDescriptor, UInt32 busPowerAvailable);
  44.  
  45. void         InitParamBlock(USBDeviceRef theDeviceRef, USBPB * paramblock);
  46.  
  47. #define kSampleRetryCount    3
  48. enum driverstages
  49. {
  50.     kUndefined = 0,
  51.     kFindInterface,
  52.     kOpenDevice,
  53.     kAssert8051Reset,
  54.     kDownload8051Firmware,
  55.     kNegate8051Reset,
  56.     kReturnFromDriver =     0x1000,
  57.     kRetryTransaction =     0x2000,
  58.     kSyncTransaction =         0x4000,
  59.     kCompletionPending =     0x8000
  60. };
  61.  
  62.  
  63. typedef struct
  64. {
  65.     USBPB                             pb;
  66.     void (*handler)(USBPB             *pb);
  67.  
  68.     UInt32                            refcon;
  69.     
  70.     UInt32                            interfaceNumber;
  71.     UInt32                            configurationNumber;
  72.     
  73.     USBDeviceRef                    deviceRef;
  74.     USBInterfaceRef                    interfaceRef;
  75.     USBPipeRef                        pipeRef;
  76.     
  77.     SInt32                             retryCount;
  78.     SInt32                            transDepth;
  79.     
  80.     UInt8                            writeBuffer[32];
  81.     UInt32                            recordnum;
  82.     UInt32                            busPowerAvailable;
  83. } usbSamplePBStruct;
  84.  
  85. #define    k8051_USBCS    0x7f92
  86.  
  87. #endif //__SampleDriverH__